﻿#ifndef TPERSON_H
#define TPERSON_H

#include <QObject>

//参考demo 验证元属性相关
class TPerson : public QObject
{
    Q_OBJECT
    //附加的类信息  一些描述必要信息
    Q_CLASSINFO("author","han")
    Q_CLASSINFO("company","UPC")
    Q_CLASSINFO("version","1.0.0")

    //属性信息 类型  名称  READ/GET 方法和 WRITE/SET 方法：指定获取和设置属性值的方法。可以使用 MEMBER、READ、WRITE、RESET 或 NOTIFY 关键字来定义这些方法。
    Q_PROPERTY(int age READ getAge WRITE setAge NOTIFY ageChanged)
    Q_PROPERTY(QString name MEMBER m_name);
    Q_PROPERTY(int score MEMBER m_score);
public:
    explicit TPerson(QString name,QObject *parent = nullptr);
    ~TPerson();

    //定义age对应的方法
    int getAge();
    void setAge(int value);
    //提供一个成员
    void addOneAge();
signals:
    void ageChanged(int value);
private:
    int m_age = 10;
    int m_score = 60;
    QString m_name;
};

#endif // TPERSON_H
